PyCon mini 東海 2024
10:25 ~ 11:15
https://scrapbox.io/files/6737f8db1df8dff36fd126e4.png
前半は、Pythonと私、東海と私、的な話
後半はPyPIから、Linuxコマンドだけでパッケージをインストールするまでの話w
質疑応答
A. 何も入ってないはずなので自分でやらないといけない
A. 情熱については、だれしも「どうしてそれに興味持つの?」ってあるので、いいじゃないですか
A. PEPのとおり動くのかを調べてみようとおもって手でやってみた。こういう検証的なのってつまらない話になりがちなので、この機会にpackagingの総決算ということも兼ねて話してみました
A. 何をお勧めしてもダメなところはどれにもあるので
A, uvは今のところPEPを尊重してくれていて速いので良いけど、問題があったときにRustだと手が出しづらいいし、PEP以上のことを実装しはじめた時に、それをPEPがリファレンスとして参照できないという問題がある。そういう意味では、Pythonで実装されているPoetry, Hatchあたりがいいんじゃないか 11:30~11:55
Python開発の変遷をPythonプロフェッショナルプログラミングの改定の歴史から知る
質疑応答
特にないです。出版社さんから「次版そろそろどうですか」と聞かれてから、現状に合わせて更新する形式
A. Pythonプロフェッショナルプログラミングなので、Pythonやめたらこの本が出なくなるかな
shimizukawa.icon チーム開発は今後も変わらない
Q. Black, Ruff, MyPyは機能が重複していると思うけども目的別に使い分けている?
BlackとRuffは切り替わりつつある感じ
12:00~12:25
pytestでRust製CLIをe2eテストしてみよう
PythonユーザーからみたRust
良いところ
動作速度が軽快、バイナリ配布しやすい
公式のLinterがあって選びやすい
本体ソースとテストコードが同居
shimizukawa.icon ほう
大変だったところ
「借用」は難しい
12:30 ~ 14:00
shimizukawa.icon休憩時間にハンドドリップでコーヒーを頂きました。美味しかった~
https://scrapbox.io/files/67385277a7f3604d3590ea2e.png
https://scrapbox.io/files/6738529be4905531b88756a5.png
shimizukawa.iconランチ、見た目がすごい!味も美味しかった。滋味溢れるというかなんというか。一番美味しかったのは煮物の里芋でした。
https://scrapbox.io/files/67383cbd5727a155bc736281.png
14:00~14:25
Pythonはどうやってlen関数で長さを手にいれているの?
shimizukawa.icon 自分です
質疑応答
A. shimizukawa.icon 見かけてないです
Q. @aodag: ファイルオブジェクトのプロトコルって何でしたっけ? A. shimizukawa.icon io.BaseIO とか・・だったかその辺?
Q. (うろ覚えだけど、面白いプロトコルは何だったか、を聞かれた気がする)
A. shimizukawa.icon iterator と iterable が最初難しかった記憶があります
14:30~14:55
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
ミソジ さん
「コンテストで2位、すみません自慢です!」
shimizukawa.icon すごい!!
FPGAの話
SUBARUのアイサイトなどで使われている
数万円するFPGA。お高い
from pynq.lib import AxiGPIO
物体検出は yorox_run
FPGA(DPU)で推論
verilogとか使わずに全てPythonで組んだことで試行錯誤の時間を短縮 英語の質疑応答は大変だった
ROSとLOSSを聞き間違えてしまった
https://scrapbox.io/files/67383226c15199b96e7f5303.png
shimizukawa.icon 分かるーー
まとめ
Pythonで動かせるFPGAも出てきている
Pythonで書くことでコーディング、デバッグの短縮
海外でもエンジニア向けの面白いコンテストがたくさんある
質疑応答
Q. 深度までみている?
A. 実は深度はみていない。前にある、丸っぽい、くらいで描画位置を決めている
Q. FPSはどのくらい?
A. USB 2.0 のカメラでその時点で 7 FPSくらい。そこに色々処理をして 4 FPSくらい。
Q. いくらぐらい?
A. FPGAボードが支給品で8万円くらい。ミニ四駆は1万円しない、配線類は元々持ってた。360℃カメラTheta360が4万円くらい。実はFPGAボードは支給されるまえに1台もってました。 Q. ZYNQ以外にもPythonが使えるFPGAがある? (回答聞き逃し)
Q. @aodag Pythonで実装したら、ハードに焼くときはどうなりますか? A. いやああ、良い質問ですね!(聞き逃し)
Q. @aodag Pythonの標準ライブラリなどはだいたい使える A. いやああ、良い質問ですね!限られたライブラリしか使えないのが現状です。ハードウェア言語不要、となるのはまだまだ先だと思います。
15:00~15:25
Google Colaboratoryで試すVLM
高橋 かずひと さん
shimizukawa.icon メモする余裕がないくらい動きがあって注視していたスライド & 興味深いトークでした
shimizukawa.icon 紹介された参考情報が気になる
質疑応答
Q. そのめっちゃ動くスライドは何で作ったんですか
A. 発表に関係ないですが、PowerPointです
shimizukawa.icon まじで!!!
Q. マリオの一番の死因は
A. 統計取ったわけじゃないですが、見た感じ、位置関係がうまく把握できないために、クリボーに抱きつく、穴に落ちる
A. とりあえず全部ためしています
A. いちばんイイネ付いてるのを使えばいいんじゃないか、という話もあります
Q. shimizukawa.icon たくさん調べた結果をどこかに使うのだと思いますが、調べる動機と利用先を教えてもらえると嬉しい
A. 動機は趣味
A. 本業が監視カメラの分析などがあるので、そこに活かされたりはする
15:45~16:10
asgirefのクラスasgiref.local.Localは何のためにあるのか?
同期と非同期の相互変換
Pythonエンジニアがよく使う機能だと思う
shimizukawa.iconたしかに
Django 3.1 から非同期ビューが導入されたが、非同期ビューから同期処理が呼べない。
そこで sync_to_async() を使う
code:python
>> from asgiref.sync import sync_to_async
>> # 同期処理の関数を引数として渡すと非同期関数に変換される
>> results = await sync_to_async(sync_function)
>> # 関数デコレータとしても使える
>> @sync_to_async
>> def sync_function(): ...
shimizukawa.iconなるほどー
asgiref.local.Local
非同期タスク用のローカルストレージ
asgiref.local.Local がimportできない場合は threading.local にフォールバック
asgiref.local.Local は内部で contextvarsを使っている
asgiref.local.Local はマルチスレッド、コルーチン両方で使える万能ローカルストレージ
標準モジュールでは、マルチスレッドではthreading.local、コルーチンではcontextvars.ContextVarを使う。
shimizukawa.icon後で調べてみよう。ContextVarsがthreadごとの独立したデータを扱えない、んだろうか?よく分かってなかった。
質疑応答
なし
16:15~16:40
ReflexによるPython onlyでの高速なWebアプリケーションプロトタイピング
川瀬 弘嗣 さん
Slide:
Reflex は、汎用的なWebアプリケーションのGUIおよびAPIをほとんどPythonのみで実装できる 「CSSからは逃れられない」
shimizukawa.icon (´・ω・`)
でも、これも完璧ではない
まとめ
Pythonだけで実装できる
フロントエンドの知見無しで実装できるほどではない
質疑応答
A.(聞き逃し)
A. そこまでは確認していない
Q. @takanory: こういう使い方ならうまくいく、みたいな、実際に使って見て良かったところは A. これは合う、みたいなケースはまだ見つかっていない
A. CSSに極力関わりたくない自分としては土台が提供されたのでよかった
Q. shimizukawa.icon Reflexを使ってプロトタイピングした場合、このあと本番にもっていく上で、フロントはデザイナーさんが作るとなった場合、API側は本運用にもっていくときどうなりますか?
A. reflex export でフロント側は引き剥がせますが、API側はreflex依存のPythonコードとしてコピーされるだけなので、本運用でもそのまま使うイメージになります。
(終了後、口頭で追加の質問)
A. それが見つからなかったのが残念です
shimizukawa.iconですよねー。reflexのままAPIサーバーを運用は厳しいだろうなと思うんですよね
17:00~17:20
クロージング
https://scrapbox.io/files/673851f8fc61942710d52902.png
https://scrapbox.io/files/6738520c8491451c8342a8b9.png